
#ifndef AVR_US_TICKER_API_H
#define AVR_US_TICKER_API_H

#include <stdint.h>
#include "ticker_api.h"

#ifdef __cplusplus
extern "C" {
#endif



typedef void (*ticker_irq_handler_type)(const ticker_data_t *const);

ticker_irq_handler_type set_us_ticker_irq_handler(ticker_irq_handler_type ticker_irq_handler);

const ticker_data_t *get_us_ticker_data(void);

void us_ticker_irq_handler(void);

void us_ticker_init(void);

void us_ticker_free(void);

uint32_t (us_ticker_read)(void);

void us_ticker_set_interrupt(timestamp_t timestamp);

void us_ticker_disable_interrupt(void);

void us_ticker_clear_interrupt(void);

void us_ticker_fire_interrupt(void);

const ticker_info_t *us_ticker_get_info(void);

/**@}*/

#ifdef __cplusplus
}
#endif

#endif

/** @}*/
